#include <iostream>
#include "algraph.h"
using namespace std;

// 创建一个无向图 -- 邻接表
ALGraph *create_algraph(int v, int e)
{
  // 创建邻接表
  ALGraph *G = new ALGraph;
  
  // 顶点数
  G->numver = v;
  
  // 边数
  G->numedg = e;
  
  // 初始化邻居表的各个指针为空
  for (int i = 0; i < v; ++i)
    G->adjlist[i].firstarc = NULL;
  
  // 创建图
  for (int i = 0; i < e; ++i)
  {
    cout << "输入:";
    
    // 接收用户输入的两个结点序号，代表两个结点相连
    int v1, v2;
    cin >> v1;
    cin >> v2;
    
    // 创建结点
    ArcNode *p = new ArcNode; 
    p->adjvex = v2; // 指向序号v2
    
    // 头插法，将结点插入邻接表
    p->nextarc = G->adjlist[v1].firstarc;
    G->adjlist[v1].firstarc = p;
    
    // 创建另一个结点
    ArcNode *q = new ArcNode; 
    q->adjvex = v1; // 指向序号v1
    
    // 头插法，将结点插入邻接表
    q->nextarc = G->adjlist[v2].firstarc;
    G->adjlist[v2].firstarc = q;
  }
  cout << "完成!" << endl;
  return G;
}